// 解题思路：
// 每个字符串取一个字符，最终形成的字符串是否为回文串
// 判断回文串一般都是用中心扩展算法，也可以从两边向中间集合
// 题目采用判断回文串的思想，从两端向中间开始集合，如果字符都相同，left++, right--, 如果不相同，直接就不回文
// 每个字符串取一个字符，必须取相同的才能回文，因此就是要看看两个字符串有没有相同字符
// 查找两个字符串中是否有相同字符，最优的解法就是用哈希表的方法

import java.util.*;

public class Symmetry {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();

        while(t-- > 0){
            int n = in.nextInt();
            String[] s = new String[n];

            for(int i = 0; i < n; i++) s[i] = in.next();

            boolean flag = true;
            int left = 0;
            int right = n - 1;
            while(left < right){
                if(check(s[left], s[right])){
                    left++;
                    right--;
                }else{
                    flag = false;
                    break;
                }
            }

            if(flag){
                System.out.println("Yes");
            }else{
                System.out.println("No");
            }
        }
    }

    public static boolean check(String s1, String s2){
        int[] hash = new int[26];
        char[] s1Arr = s1.toCharArray();
        char[] s2Arr = s2.toCharArray();

        for(char ch : s1Arr) hash[ch - 'a']++;
        for(char ch : s2Arr) {
            if(hash[ch - 'a'] != 0) return true;
        }
        return false;
    }
}
